import axios from "axios";
import qs from "qs";
import store from "@/store";
import baseURL from "./baseURL.js";

// axios 配置
const instance = axios.create({
  // baseURL: baseURL,
  // headers: {
  //   "Content-Type": "application/json"
  // },
  timeout: 30000
});

// 添加请求拦截器
instance.interceptors.request.use(
  config => {
    // if (store.state.UserToken) {
    //   config.headers.Authorization = store.state.UserToken;
    // }
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);

// 添加响应拦截器
instance.interceptors.response.use(
  response => {
    return response.data;
  },
  err => {
    if (err && err.response) {
      switch (err.response.status) {
        case 400:
          err.message = "请求出错";
          break;
        case 401:
          Message.warning({
            message: "授权失败，请重新登录"
          });
          store.commit("LOGIN_OUT");
          setTimeout(() => {
            window.location.reload();
          }, 1000);
        case 403:
          err.message = "拒绝访问";
          break;
        case 404:
          err.message = "请求错误，未找到该资源";
          break;
        case 500:
          err.message = "服务器出错";
          break;
      }
    } else {
      err.message = "连接服务器失败";
    }
    Message.error({
      message: err.message
    });
    return Promise.reject(err.response);
  }
);

export default instance;

// /**
//  * post 请求方法
//  * @param url
//  * @param data
//  * @returns {Promise}
//  */
// export function post(url, data = {}) {
//   return new Promise((resolve, reject) => {
//     instance
//       .post(url, qs.stringify(data))
//       .then(res => {
//         resolve(res);
//       })
//       .catch(err => {
//         reject(err);
//       });
//   });
// }

// /**
//  * get 请求方法
//  * @param url
//  * @param data
//  * @returns {Promise}
//  */
// export function get(url, data = {}) {
//   console.log("data123: ", data);
//   return new Promise((resolve, reject) => {
//     instance
//       .get(url, {
//         params: data
//       })
//       .then(res => {
//         console.log("res6455: ", res);
//         resolve(res);
//       })
//       .catch(err => {
//         reject(err);
//       });
//   });
// }
